diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_13_AVX512.c index c50dec2289..a80f3fb280 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z104_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z104_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z104_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<60;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<60;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<60;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<60;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<60;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_13_AVX512.c index 4fcc829817..b46f3f2e20 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z10_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z10_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z10_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_13_AVX512.c index d1317246ca..14de356cc0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z112_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z112_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z112_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<64;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<64;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<64;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<64;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<64;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_13_AVX512.c index 666e880b63..aeba3ddd1f 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z11_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z11_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z11_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_13_AVX512.c index 50861b59c7..71bc1db2bd 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z120_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z120_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z120_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<17;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<69;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<17;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<69;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<17;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<69;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<17;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<17;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<69;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<69;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_13_AVX512.c index b903469416..15edfb7647 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z128_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z128_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z128_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<5;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_13_AVX512.c index 7139493441..09610a25e7 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z12_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z12_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z12_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_13_AVX512.c index c40e94492b..96e108ac27 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z13_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z13_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z13_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_13_AVX512.c index 8b0f1b0ca7..449becf031 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z144_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<6;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<6;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z144_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z144_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<6;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<82;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<82;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<82;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<82;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<82;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_13_AVX512.c index 2984b980c7..0145645d66 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z14_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z14_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z14_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_13_AVX512.c index 461b5f93e7..c301777ab6 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z15_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z15_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z15_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_13_AVX512.c index e643968da1..bd90abe1ed 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z160_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<6;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<6;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z160_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z160_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<6;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<91;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<91;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<91;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<91;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<91;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_13_AVX512.c index 426a778f27..4108cc350d 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z16_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z16_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z16_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_13_AVX512.c index 6ee2722b07..2b8c34cfcd 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z176_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<7;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<7;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z176_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z176_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<7;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<100;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<100;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<100;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<100;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<100;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_13_AVX512.c index 6fc9751176..79fd7bb3fc 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z18_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z18_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z18_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_13_AVX512.c index 3c540b3e15..fa57e497b2 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z192_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<7;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<7;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z192_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z192_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<7;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<27;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<109;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<27;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<109;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<27;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<109;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<27;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<27;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<109;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<109;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_13_AVX512.c index ed3609cd9b..6533824d04 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z208_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<8;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<8;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z208_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z208_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<8;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<29;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<118;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<29;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<118;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<29;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<118;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<29;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<29;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<118;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<118;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<53;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<53;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<53;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<53;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<53;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<53;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<34;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_13_AVX512.c index 246243701e..b64ec809d7 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z20_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z20_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z20_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_13_AVX512.c index 53793e87f1..96bd8f328b 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z224_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<8;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<1;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<8;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z224_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z224_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<8;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<31;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<127;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<31;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<127;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<31;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<127;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<31;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<31;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<14;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<127;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<127;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<57;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<57;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<57;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<57;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<57;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<57;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_13_AVX512.c index ee4546d73a..071aaa7acc 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z22_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z22_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z22_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_13_AVX512.c index df754bcd8d..53a9cdbdf4 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z240_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<9;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<2;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<9;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z240_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z240_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<9;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<33;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<136;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<33;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<136;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<33;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<136;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<33;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<33;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<136;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<136;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<39;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_13_AVX512.c index f33c12a104..a34658b5ec 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z24_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z24_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z24_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_13_AVX512.c index 219c2d2970..c7a646abae 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z256_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<9;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<2;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<9;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z256_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z256_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<9;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<36;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<145;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<36;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<145;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<36;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<145;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<36;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<36;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<16;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<16;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<16;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<16;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<16;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<16;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<145;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<145;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<65;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<65;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<65;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<65;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<65;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<65;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_13_AVX512.c index 3c887f17d9..bd776e8af1 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z26_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z26_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z26_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_13_AVX512.c index 695502b25c..90553112b0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z288_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<10;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<2;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<10;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z288_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z288_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<10;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<40;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<163;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<40;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<163;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<40;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<163;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<40;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<40;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<18;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<163;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<163;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<73;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_13_AVX512.c index 8d6bf62622..aca2ba32eb 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z28_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z28_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z28_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_13_AVX512.c index a38a282b71..92237b43f2 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z2_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z2_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z2_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_13_AVX512.c index 5042fe1832..b08797b2c3 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z30_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z30_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z30_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_13_AVX512.c index 37c51ca8ed..09f4b52d2f 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z320_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<11;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<2;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<11;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z320_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z320_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<11;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<45;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<181;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<45;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<181;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<45;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<181;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<45;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<45;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<20;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<181;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<181;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<81;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<81;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<81;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<81;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<81;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<81;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<41;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_13_AVX512.c index 74e068897f..a09cfac995 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z32_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z32_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z32_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_13_AVX512.c index 6b955dacc6..d9e160a715 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z352_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<12;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<2;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<12;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z352_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z352_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<12;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<49;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<199;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<49;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<199;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<49;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<199;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<49;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<49;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<22;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<199;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<199;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<89;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<89;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<89;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<89;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<89;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<89;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<56;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_13_AVX512.c index c2c079c8f9..25b58a5900 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z36_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z36_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z36_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<22;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<22;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<22;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<22;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<22;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_13_AVX512.c index 4c30ddcdd8..90743f4d94 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,62 +11,25 @@ void nrLDPC_cnProc_BG1_Z384_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { + for (int i=0;i<13;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - for (int i=0;i<3;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } -<<<<<<< HEAD - for (int i=0;i<0;i+=2) { -======= - for (int i=0;i<3;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i+=2) { -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i+=2) { ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + for (int i=0;i<13;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -75,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z384_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -87,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z384_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<13;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<54;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<217;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<54;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<217;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<54;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<217;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<54;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<54;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<24;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<15;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<217;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<217;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<97;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<97;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<97;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<97;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<97;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<97;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<61;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_13_AVX512.c index 570c6e2df6..68d316935c 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z3_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z3_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z3_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_13_AVX512.c index ce5f40be59..39bd657832 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z40_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z40_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z40_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_13_AVX512.c index b88efc7869..aa1e643497 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z44_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z44_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z44_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<26;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_13_AVX512.c index c7f3ac9c32..5638fe34d4 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z48_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z48_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z48_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<28;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<28;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<28;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<28;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<28;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_13_AVX512.c index a1680e92c4..268c1feda5 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z4_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z4_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z4_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_13_AVX512.c index 082c347511..bbb23c68e1 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z52_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z52_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z52_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<7;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_13_AVX512.c index e05e2f8911..697578fb91 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z56_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z56_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z56_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_13_AVX512.c index 389906e093..9ecfe8253e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z5_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z5_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z5_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_13_AVX512.c index a77c03aac1..7388cfc93c 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z60_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z60_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z60_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<35;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<35;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<35;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<8;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<35;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<35;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_13_AVX512.c index 5eb0b825c1..344c581d07 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z64_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z64_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z64_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<3;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<9;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<37;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_13_AVX512.c index 6a61967676..f36090f3c5 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z6_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z6_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z6_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_13_AVX512.c index b92bb8bfc6..7cd843079a 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z72_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z72_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z72_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<42;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<42;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<42;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<10;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<4;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<42;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<42;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<19;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_13_AVX512.c index 7653951ec8..b6b2217da5 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z7_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z7_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z7_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_13_AVX512.c index 1f0b27d63f..4270e81f94 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z80_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z80_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z80_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<11;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<46;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<21;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_13_AVX512.c index b29fe4bd04..e57da338bb 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z88_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z88_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z88_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<12;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<5;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<2;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<51;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<23;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_13_AVX512.c index 3633d57f3d..0048bf497c 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z8_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z8_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z8_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_13_AVX512.c index 6ea97c7718..f04b440837 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z96_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z96_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z96_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<4;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<55;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<55;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<55;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<13;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<6;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<55;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<3;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<55;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<25;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<16;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_13_AVX512.c index 1cc42eb87e..548ab5f8ab 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); @@ -12,55 +11,25 @@ void nrLDPC_cnProc_BG1_Z9_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { __m512i zmm0, min, sgn,ones,maxLLR; ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<0;i+=2) { -<<<<<<< HEAD + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[6+i]; -======= - zmm0 = ((__m512i*)cnProcBuf)[12+i]; ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; + zmm0 = ((__m512i*)cnProcBuf)[12+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); + zmm0 = ((__m512i*)cnProcBuf)[7+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[13+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i+=2) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[3+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - zmm0 = ((__m512i*)cnProcBuf)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[25+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[4+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 - } - for (int i=0;i<0;i+=2) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -68,11 +37,7 @@ void nrLDPC_cnProc_BG1_Z9_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[6+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[12+i] = _mm512_sign_epi16(min, sgn); zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -80,4554 +45,2296 @@ void nrLDPC_cnProc_BG1_Z9_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); -<<<<<<< HEAD - ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[13+i] = _mm512_sign_epi16(min, sgn); } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[324+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[180+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[90+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[150+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[56+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[60+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[84+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { + for (int i=0;i<2;i+=2) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); zmm0 = ((__m512i*)cnProcBuf)[6+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[54+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[30+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[42+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[432+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[0+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[24+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[96+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[120+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[144+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[168+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[192+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[216+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[240+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[264+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[288+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[312+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[336+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[360+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[384+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[408+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); -======= - ((__m512i*)cnProcBufRes)[7+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[9+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[24+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; + zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[189+i]; + zmm0 = ((__m512i*)cnProcBuf)[7+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[39+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[25+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[9+i]; +//Process group with 4 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[66+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + zmm0 = ((__m512i*)cnProcBuf)[96+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[129+i]; + zmm0 = ((__m512i*)cnProcBuf)[126+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[54+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[36+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[96+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[126+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[156+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[36+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[66+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[96+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[216+i] = _mm512_sign_epi16(min, sgn); } //Process group with 5 BNs - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[384+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[69+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[276+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[123+i] = _mm512_sign_epi16(min, sgn); + ((__m512i*)cnProcBufRes)[492+i] = _mm512_sign_epi16(min, sgn); } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[177+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[933+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[231+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<1;i++) { - zmm0 = ((__m512i*)cnProcBuf)[69+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[285+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[501+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[717+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[285+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[339+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[363+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[387+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[411+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[819+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[435+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[339+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[435+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[531+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[627+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[459+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[483+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[498+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[513+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[528+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[543+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[843+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[558+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[483+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[543+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[603+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[663+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[723+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[783+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[573+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[594+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[600+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[606+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[612+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[618+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[624+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[588+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[612+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[630+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[636+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[648+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[654+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[660+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[666+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[672+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[828+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[636+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[660+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[684+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[708+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[732+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[756+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[780+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[684+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[690+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[693+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[699+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[702+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[705+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[708+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[711+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[798+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[714+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[690+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[702+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[714+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[738+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[762+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[786+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[717+i] = _mm512_sign_epi16(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[720+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[732+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[744+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[756+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[768+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[780+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[792+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[816+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[828+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[840+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[852+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[864+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[888+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[900+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; + zmm0 = ((__m512i*)cnProcBuf)[708+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); ((__m512i*)cnProcBufRes)[924+i] = _mm512_sign_epi16(min, sgn); - } - for (int i=0;i<0;i++) { - zmm0 = ((__m512i*)cnProcBuf)[720+i]; + } + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[276+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[768+i]; + zmm0 = ((__m512i*)cnProcBuf)[384+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[816+i]; + zmm0 = ((__m512i*)cnProcBuf)[492+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[864+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[960+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1008+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1104+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1152+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_sign_epi16(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; + zmm0 = ((__m512i*)cnProcBuf)[600+i]; min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = _mm512_sign_epi16(sgn, zmm0); min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[936+i] = _mm512_sign_epi16(min, sgn); ->>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 + ((__m512i*)cnProcBufRes)[1140+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 6 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1356+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1452+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1548+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1644+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1596+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1740+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1356+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1404+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1452+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1500+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1548+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1836+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 7 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1932+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[1992+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2052+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2112+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2172+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2112+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2232+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[1932+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1962+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1992+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2022+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2052+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2082+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2292+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 8 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2352+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2376+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2400+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2424+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2448+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2472+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2408+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2436+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2496+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2352+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2364+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2376+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2388+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2400+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2472+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2424+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2520+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 9 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2544+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2568+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2592+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2616+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2640+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2664+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2688+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2640+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2712+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2544+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2556+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2568+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2580+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2592+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2604+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2616+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2628+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2736+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 10 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2760+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2772+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2784+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2796+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2808+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2820+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2832+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2844+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2778+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2814+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2856+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2760+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2766+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2772+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2784+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2790+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2796+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2802+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2808+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2868+i] = _mm512_sign_epi16(min, sgn); + } +//Process group with 19 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2880+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2928+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[2976+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3024+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3072+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3120+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3168+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3216+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3264+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3312+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3360+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3408+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3456+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3504+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3552+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3600+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3648+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3312+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3696+i] = _mm512_sign_epi16(min, sgn); + } + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[2880+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2904+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2928+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2952+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[2976+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3000+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3024+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3048+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3072+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3096+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3120+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3144+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3168+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3192+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3216+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3240+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3264+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[3288+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + min = _mm512_min_epu8(min, maxLLR); + ((__m512i*)cnProcBufRes)[3744+i] = _mm512_sign_epi16(min, sgn); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_13_AVX512.c index 966334a68d..028fc8acd6 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_13_AVX512.c index 1b3aead33f..454c57bde2 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_13_AVX512.c index b929b48d0e..471c209c13 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_13_AVX512.c index 83ec3eab87..7bdaecb163 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_13_AVX512.c index 66b66d6c48..f27234e514 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_13_AVX512.c index 4eef884767..ed82005362 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_13_AVX512.c index 5c8dbd18fd..4a6f4e84c7 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_13_AVX512.c index 4b462304ba..fddad47a3a 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_13_AVX512.c index 0ba1baa27a..53fc972914 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_13_AVX512.c index 000bb5bcb6..c335d28ea0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_13_AVX512.c index 89070e0962..f03c575141 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_13_AVX512.c index 2a1380845d..6a4d58f191 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_13_AVX512.c index f142d25d1f..bd10af445e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_13_AVX512.c index b4ab3963ec..55e116b51f 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_13_AVX512.c index aec739240e..712ec87469 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_13_AVX512.c index 501021f109..eda5b6a463 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_13_AVX512.c index 835406c3fc..9a1081c951 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_13_AVX512.c index df043f09da..7a42b26ad1 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_13_AVX512.c index c88f4fd799..1863faff1c 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_13_AVX512.c index 3d8ad4087d..fc8ec65f5b 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_13_AVX512.c index e149354070..7c2b22ab84 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_13_AVX512.c index 87b84e20e3..a7e29917dc 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_13_AVX512.c index 05625adeca..8467ccc0ef 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_13_AVX512.c index 8f1eef0d86..dd9c501e23 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_13_AVX512.c index 4d22f6cad3..080ef69200 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_13_AVX512.c index 0b0b19e37b..04a81d12e9 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_13_AVX512.c index e99c45d669..6fd089c473 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_13_AVX512.c index 25cc25772c..8a67896e39 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_13_AVX512.c index d1bb694f7e..5e1acf0903 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_13_AVX512.c index cfc73d3cae..14ce05ac0b 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_13_AVX512.c index 1ec26ff03c..35c1a730e8 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_13_AVX512.c index 2fefbad81c..be02e00e7f 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_13_AVX512.c index 7910c9bb85..22e55f4543 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_13_AVX512.c index 1bd4846f85..f2752744e3 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_13_AVX512.c index 5592f8283f..3d49278c3d 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_13_AVX512.c index d0926082cf..9bff5a5d51 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_13_AVX512.c index cf5d4b986a..73ff170732 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_13_AVX512.c index 65828bd949..174556650b 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_13_AVX512.c index 641eb01505..4425d37550 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_13_AVX512.c index ef9fb0faf6..34476031c1 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_13_AVX512.c index 25031943fd..4f780cfa67 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_13_AVX512.c index 4b6d79d89c..d102d9cda6 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_13_AVX512.c index a4abfb87e5..649ce55fa0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_13_AVX512.c index ad1dc9e103..194c559442 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_13_AVX512.c index 8e325bdfa4..fd82e34130 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_13_AVX512.c index 04e0ad4dbf..0c6b156921 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_13_AVX512.c index 2b2ca88268..2d6c7477bd 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_13_AVX512.c index 745249c196..6a639f9cb4 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_13_AVX512.c index f59c40998e..8b3b9f9183 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_13_AVX512.c index 6854cd72a4..63631b39b4 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1)); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_13_AVX512.c index ce8ce8fd02..b19f2afe39 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_13_AVX512.c @@ -1,6 +1,5 @@ #include #include -#include "../include/avx512fintrin.h" __m512i _mm512_sign_epi16(__m512i a, __m512i b){ b = _mm512_min_epi16(b, _mm512_set1_epi16(1)); b = _mm512_max_epi16(b, _mm512_set1_epi16(-1));